Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices. In typical operation, the storage processors service IO (Input/Output) requests that arrive from hosts. The IO requests specify files or other data elements (e.g., block-based data) to be written, read, created, or deleted, for example. The storage processors each run software that manages incoming storage requests and perform various data processing operations to organize and secure user data stored on the non-volatile storage devices.
Storage processors commonly operate in one of two modes: active-passive or active-active. In active-passive mode, one storage processor (“SP”) of a data storage system operates as an active SP and handles data processing tasks associated with servicing IO requests directed to a particular data object. Other SPs of the data storage system operate in passive mode. Such other SPs may receive IO requests directed to the data object but do not process them. Rather, the other SPs forward the IO requests to the active SP, which processes the IO requests to effect data operations on the data object, such as reading and writing. In active-active mode, by contrast, multiple SPs of a data storage system can process IO requests to effect data operations on the same data object. No forwarding of IO requests is required, and multiple SPs can perform operations on the same data object at the same time.
Certain conventional data storage systems provide active-active access to LUNs (logical unit numbers—although the acronym also describes the storage units themselves). Such LUNs are formed from RAID groups (RAID is an acronym for Redundant Array of Independent Disks) derived from non-volatile storage devices, such as magnetic disk drives, electronic flash drives, optical drives, and the like. Multiple SPs in a data storage system can access such LUNs to service read and write IO requests arriving at the data storage system simultaneously.